import { Injectable } from '@angular/core';
import { CoreModule } from '../core.module';

@Injectable({
    providedIn: CoreModule
})
export class UtilService {
    constructor(
    ) { }
    format(date: Date | number, pattern: string): string {
        if (typeof date === 'number') {
            date = new Date(date);
        }
        const o = {
            'M+': date.getMonth() + 1,
            'd+': date.getDate(),
            'h+': date.getHours(),
            'm+': date.getMinutes(),
            's+': date.getSeconds(),
            'q+': Math.floor((date.getMonth() + 3) / 3),
            'S': date.getMilliseconds()
        };
        if (/(y+)/.test(pattern)) {
            pattern = pattern.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
        }
        for (const k in o) {
            if (new RegExp('(' + k + ')').test(pattern)) {
                pattern = pattern.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
            }
        }
        return pattern;
    }
}
